package Logica;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

import javax.swing.JOptionPane;
/**
 * ProyectoX TDP 2011
 * @author  Ma Gimena Ramos- LU:82716
 * @autor Brenda Dilschneider- LU: 92774
 *
 */

public class CreatorByFile {
	private ManejoLogico m;

	/**
	 * constructor
	 * @param s string donde se encuentra el nivel
	 * @param m manejo logico
	 */
	public CreatorByFile(String s,ManejoLogico m) {
		;
		URL rutaArchivo = getClass().getResource(s);
		
		this.m = m;
		InputStreamReader input;
		try {
			input = new InputStreamReader(rutaArchivo.openStream());
			procesarArchivo(input);
		} catch (IOException e) {
			e.printStackTrace();
		}

	}


	/**
	 * Metodo utilizado para procesar el archivo.
	 * 
	 * @param input
	 *            stream de entrada
	 */
	protected void procesarArchivo(InputStreamReader input) {

		try {
			
			BufferedReader in = new BufferedReader(input);
			String str;int i=0;
			while ((str = in.readLine()) != null) {
				this.procesarLinea(str,i);
				i++;
			}
			in.close();
		} catch (IOException e) {
		}
	}

	/**
	 * Procesa una linea del archivo. Se encarga de ingresar los casilleros al
	 * tablero y al panel de componentes.
	 * 
	 * @param str
	 *            - linea a procesar
	 */
protected void procesarLinea(String str,int y) {
	
		char o;
		int x=0;

		if (str != null) {
			

			while (x<str.length()){
				o=str.charAt(x);
				if (o!='V')
				{m.CargarNivel(x, y, o);}
				x++;}
			

		}

	}

}
